/**
 * LogFactory
 *
 * @author Chris Pratt
 *
 * 10/20/2011
 */
package com.anodyzed.onyx.log;

public interface LogFactory {

  /**
   * Get the Logger defined for the category named for the calling class
   *
   * @return Logger 
   */
  Log getLogger();

  /**
   * Get the Logger defined for the category named for the supplied class
   *
   * @param clazz The class whose name should be used as the category
   * @return Logger
   */
  Log getLogger(Class<?> clazz);

  /**
   * Get the Logger defined for the specified category
   *
   * @param category The category name
   * @return Logger
   */
  Log getLogger(String category);

  /**
   * Set the Mapped Diagnostic Context Identifier
   *
   * @param id The MDC Identifier
   */
  void setId(String id);

  /**
   * Set a Mapped Diagnostic Context Key/Value pair
   *
   * @param key The MDC Key 
   * @param val The MDC Value 
   */
  void set(String key,String val);

} //#LogFactory
